const debug = require('debug')('koa-weapp')

/**
 * 响应处理模块
 */
module.exports = async function(ctx, next) {
    try {
        // const url = ctx.url.split('?')[0]
        // const login_uid = ctx.url.split('?')[1]
        // if (url == "/weapp/login" || url.indexOf('_') > -1 || url.indexOf('.') > -1) {
        //     await next()
        // } else {
        //     if (!login_uid || !global.loginUid || login_uid != global.loginUid) {
        //         ctx.body = { code: -4 }
        //     } else {
        //         await next()
        //         global.resetLoginUid()
        //     }
        // }
        // 处理响应结果
        // 如果直接写入在 body 中，则不作处理
        // 如果写在 ctx.body 为空，则使用 state 作为响应
        ctx.body = ctx.body ? ctx.body : {
            code: ctx.state.code !== undefined ? ctx.state.code : 0,
            data: ctx.state.data !== undefined ? ctx.state.data : {}
        }
    } catch (e) {
        // catch 住全局的错误信息
        debug('Catch Error: %o', e)

        // 设置状态码为 200 - 服务端错误
        ctx.status = 200

        // 输出详细的错误信息
        ctx.body = {
            code: -1,
            error: e && e.message ? e.message : e.toString()
        }
    }
}